Method for pre-fetching data chunks of an email attachment on a portable electronic device

ABSTRACT

A method for downloading an attachment to a portable electronic device&#39;s attachment viewer includes: sending an initial request from the attachment viewer to a server in response to receiving an email including the attachment by the device; from the server, accessing a graph structure representing a map of the attachment previously built on the server; reconstructing the graph structure in response to the request and encapsulating the graph structure in data having an attachment viewer readable format; (i) downloading successive chunks of the data from the server to the attachment viewer responsive to successive requests; (ii) storing each of the successive chunks on the device prior to display thereof; (iii) displaying the successive chunks on the device and automatically downloading respective next chunks of the data from the server; and (iv) while chunks remain to be downloaded from the server performing (i) to (iii).

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. application Ser. No.11/835,595, filed Aug. 8, 2007, the entire contents of which isincorporated herein by reference.

FIELD

The present disclosure relates to portable electronic devices operatingon wireless networks, in particular, to a method for receiving emailattachments.

BACKGROUND

It is becoming increasingly popular to send photographs, scanneddocuments, slide shows, PDF documents and other types of attachments inemail messages. Each attachment is provided with a filename and islinked to an email message in a manner that is well known in the art.Often, a single email message may contain multiple attachments.

On portable electronic devices, there is generally a delay between arequest to view an attachment by a user and display of the attachment onthe display screen of the device. The primary cause of the delay isserver processing time, however, network speed is also a contributingfactor. The delay can often exceed 20-30 seconds. A shorter waitingperiod between requesting and viewing an attachment on a portableelectronic device is therefore desirable.

One solution to the foregoing is to send an initial data request fromthe attachment viewer to a server in response to receipt of an emailmessage including the attachment by the portable electronic device,accessing a graph structure representing a map of the attachment fromthe server, the graph structure having been previously built on theserver, reconstructing the graph structure in response to the initialrequest and encapsulating the graph structure in data having anattachment viewer readable format, the data being stored on the serverand sending an initial chunk of the data to the attachment viewer, theinitial chunk of the data being stored on the portable electronicdevice; wherein the initial chunk of the data is received prior to arequest to view the attachment being sent to the server.

Since the attachment data is divided into multiple chunks, whenever theuser scrolls through the document and reaches a certain character countthreshold (before the end of the latest downloaded data chunk), arequest for the next available chunk is issued by the attachment viewerto the attachment server. However, the foregoing method pre-fetches onlythe initial chunk of data and, due to the size of such data chunks andthe complexity of processing the data chunks within the attachmentserver side, the user continues to wait several seconds before the nextchunk data is available for viewing.

BRIEF DESCRIPTION OF THE DRAWINGS

The embodiments will be better understood with reference to thefollowing Figures in which like numerals denote like parts and in which:

FIG. 1 is a schematic diagram of a wireless communication system;

FIG. 2 is a block diagram of components of a portable electronic deviceaccording to an embodiment; and

FIG. 3 is a flowchart showing device-side operation of a method fordownloading data to an Attachment Viewer of the portable electronicdevice of FIG. 2; and

FIG. 4 is a flowchart showing server-side operation of a method fordownloading data to an Attachment Viewer of the portable electronicdevice of FIG. 2.

DETAILED DESCRIPTION

In one aspect there is provided a method for downloading an attachmentto an attachment viewer of a portable electronic device, comprising:sending an initial request from the attachment viewer to a server inresponse to receipt of an email message identifying the attachment bythe portable electronic device; accessing a graph structure representinga map of the attachment from the server, the graph structure having beenpreviously built on the server; reconstructing the graph structure inresponse to the initial request and encapsulating the graph structure indata having an attachment viewer readable format, the data being storedon the server; downloading an initial chunk of the data from the serverto the attachment viewer responsive to the initial request; storing thedownloaded chunk of the data on the portable electronic device prior todisplay thereof; displaying the stored chunk of the data on the portableelectronic device; upon displaying the stored chunk of the data,automatically sending a request to download a respective next chunk ofthe data from the server; responsive to the request, downloading therespective next chunk of the data from the server; and while data chunksof the data remain to be downloaded from the server, repeating thestoring, displaying, requesting and downloading.

In another aspect there is provided a portable electronic deviceincluding: at least one input device; a content store; a display; and anattachment viewer for: sending an initial request to download an initialchunk of data from a server storing the data in an attachment viewerreadable format; receiving and storing the downloaded chunk of the datain the content store prior to display thereof; displaying the storedchunk of the data on the display; upon displaying the stored chunk ofthe data, automatically sending a request to download a respective nextchunk of the data from the server; and while the data chunks of the dataremain to be downloaded from the server, repeating the receiving,storing, displaying and requesting.

In yet another aspect there is provided a method for downloading dataonto a portable electronic device having an attachment viewer, a displayand a content store, comprising: sending an initial request from theattachment viewer to download an initial chunk of data from a serverstoring the data in an attachment viewer readable format; receiving andstoring the downloaded chunk of the data in the content store prior todisplay thereof; displaying the stored chunk of the data on the display;upon displaying the stored chunk of the data, automatically sending arequest from the attachment viewer to download a respective next chunkof the data from the server; and while the data chunks of the dataremain to be downloaded from the server, repeating the receiving,storing, displaying and requesting.

Referring now to FIG. 1, a communication system 10 for a portableelectronic device 12 is generally shown. The portable electronic device12 is operable to effect communications over a radio communicationschannel and communicates with a base station (not shown) while locatedwithin a coverage area that is defined by the base station. The basestation is part of a wireless network that is in communication with theInternet 14. Data is delivered to the portable electronic device 12 viawireless transmission from the base station. Similarly, data is sentfrom the portable electronic device 12 via wireless transmission to thebase station.

It will be appreciated that the portable electronic device 12 is movablewithin the coverage area and can be moved to coverage areas defined byother base stations. Further, as will be understood by one of ordinaryskill in the art, wireless networks include GSM/GPRS, CDPD, TDMA, iDEN,Mobitex, DataTAC networks, EDGE, EVDO or UMTS and broadband networkssuch as Bluetooth and variants of 802.11.

A server 18 handles wireless client requests from the portableelectronic device 12. A firewall, or proxy server, 16, is providedbetween the server 18 and the Internet 14. The server 18 furtheroperates as an Attachment Server, which communicates with an emailclient and an Attachment Viewer of the portable electronic device 12 toallow a user to view attachments that are received in email messages.While only one server 18 is shown for illustration purposes, a personskilled in the art will understand that the Attachment Server mayalternatively be a separate server.

Referring now to FIG. 2, a block diagram of certain components withinthe portable electronic device 12 is shown. In the present embodiment,the portable electronic device 12 is based on the computing environmentand functionality of a wireless personal digital assistant (PDA). Itwill be understood, however, that the portable electronic device 12 isnot limited to wireless personal digital assistants. Other portableelectronic devices are possible, such as smart telephones, and laptopcomputers.

The portable electronic device 12 is based on a microcomputer includinga processor 20 connected to a read-only-memory (ROM) 22 that contains aplurality of applications executable by the processor 20 that enableseach portable electronic device 12 to perform certain functionsincluding, for example, PIN message functions, SMS message functions andcellular telephone functions, including an Attachment Viewer applicationfor viewing attachments to emails, such as word processing documents,spreadsheets, images, etc.. The processor 20 is also connected to arandom access memory unit (RAM) 24 and a persistent storage device 26which are responsible for various non-volatile storage functions of theportable electronic device 12. The processor 20 receives input fromvarious input devices including a keypad 28. The processor 20 outputs tovarious output devices including an LCD display 30. A microphone 32 andphone speaker 34 are connected to the processor 20 for cellulartelephone functions. The processor 20 is also connected to a modem andradio device 36. The modem and radio device 36 is used to connect towireless networks and transmit and receive voice and data communicationsthrough an antenna 38. A content store 40, which is generally a filestorage system for the portable electronic device 12, is also provided.

Request/view functionality for an attachment of an email messagereceived by the portable electronic device 12 is provided by theAttachment Viewer and the Attachment Server 18.

Referring to FIG. 3, device-side operation of a method for downloadingan attachment to an Attachment Viewer of the portable electronic device12 is generally shown. When an email message is received by the portableelectronic device 12 at step 42, the Attachment Viewer first determineswhether or not the email message contains an attachment, as indicated atstep 44. The Attachment Viewer is able to determine if an attachment ispresent by checking the email payload and searching for email componentsthat have been marked as supported attachments. The email components aremarked by an enterprise server, which communicates with AttachmentServer 18.

If the email message does not include an attachment, the logicterminates. If the email message does include an attachment, theAttachment Viewer sends an initial request to the Attachment Server 18to retrieve the attachment, as indicated at step 46. In response to theinitial request, an initial chunk of data is returned to the portableelectronic device 12 and is stored in the content store 40, as indicatedat steps 48 and 50, respectively. Each chunk of data downloaded from theAttachment Server 18 is of a size (e.g. 16 Kbyte) suitable for internalcaching within the device 12 and may be provided in Universal ContentStream (UCS) format, which is an Attachment Viewer readable format.

At step 52, the user opens the attachment and selects “Full Content”from a menu in order to view the attachment in the Attachment Viewer ofthe portable electronic device 12. If the user does not choose to viewthe attachment, the logic terminates and the initial chunk of UCS dataremains in the content store 40 of the portable electronic device 12until the email message is deleted.

In response to the “Full Content” selection by the user, the initialchunk of UCS data is retrieved from the content store 40 and displayedby the Attachment Viewer, as indicated at steps 54 and 56, respectively.Upon the initial document display of the first data chunk, a backgroundrequest for the second chunk is immediately issued (step 58) and data iscached (step 60). When the user action requests this data (i.e. byscrolling to the end of the first chunk), the next chunk is immediatelyretrieved form the persistent store 40 and presented to the user at step66. Provided that additional attachment data remains to be downloadedfrom the server 18 (step 64), the background request for the subsequentnext data chunk is re-issued (step 58).

It will be understood from the foregoing that each next data chunk isautomatically downloaded from the server 18 and cached on the device 12immediately upon user action (scroll) requesting the current data chunk.It will also be understood that if the user jumps in the document textsuch as by using a text hyperlink (a “NO” at step 62), then the chunkrequested at step 58 will not necessarily be the subsequent chunk ofdata to be displayed. Since such a “jump” is not an implied action thatcan be predicted, the method terminates and the user has to wait for thetarget data chunk to be downloaded from the server 18. However, oncedisplayed, the method starts again at step 58 by pre-fetching the nextchunk after the target chunk being displayed.

Referring to FIG. 4, server-side operation of the method for downloadingan attachment to an Attachment Viewer of the portable electronic device12 is generally shown. When an email message having an attachment isreceived by the portable electronic device 12, as indicated at step 42of FIG. 3, the Attachment Server 18 first builds a Document Object Model(DOM) by parsing the attachment document, as indicated at step 62 ofFIG. 4. In this manner, a graph structure representing a map of theoriginal attachment file is built within the Attachment Server 18. TheDOM contains textual content, font, style and formatting attributes aswell as layout attributes, such as page/slide size, positioninginformation (i.e. x, y and z coordinates on the page), embedded graphicsand tables, for example. DOM structure is well known and is disclosed inUnited States Patent Application Nos. 2002/0161796 and 2006/0055693,which are herein incorporated by reference.

At step 64, which corresponds to step 46 of FIG. 3, the initial requestfrom the Attachment Viewer is received by the Attachment Server 18.Based on the request content, the DOM is accessed and components of theDOM are reconstructed in order to fulfill the request. The requesttypically includes: a screen size of the portable electronic device 12,the type of portable electronic device 12 and the requested UCS chunksize in Kilobytes. At step 66, the reconstructed DOM is encapsulated inUCS data and stored on the Attachment Server 18. An initial chunk of UCSdata is then sent to the Attachment Viewer, as indicated at step 68,which corresponds to step 48 of FIG. 3. The initial chunk of datacontains the start of the attachment. For example, the first chunk maycontain the first page or multiple pages of a document depending on howmany pages can fit in the requested UCS chunk size. When the user opensthe attachment and selects “Full Content”, as indicated at step 70, thesecond chunk of UCS data is sent to the portable electronic device 12,as indicated at step 72. Then, when the user scrolls to the end of thefirst chunk, the next chunk is already available in content store 40. Assoon as the next chunk is displayed (corresponding to step 66 in FIG.3), the attachment viewer sends a request for the next chunk (step 58 inFIG. 3), resulting in the Attachment Server 18 downloading the next datachunk (step 74).

In summary, by automatically pre-fetching and storing each next(subsequent) chunk of attachment data locally on the portable electronicdevice 12, the Attachment Viewer is able to display attachment contentimmediately upon user scrolling to the end of a current chunk of data.By the time the user has viewed each portion of the attachment definedby a chunk of data, which is contained in the initial chunk of data, thesecond chunk of data will have arrived at the device 12. Thus, the useris able to view the attachment document without experiencing asignificant delay following the view request.

The method for downloading data to a portable electronic device 12 isnot limited to downloading attachment data from an Attachment Server.Native attachment downloads, which send attachment binary data from anEnterprise Server rather than UCS data from the Attachment Server, mayalso be performed. Native attachment download is useful for portableelectronic devices having Microsoft Office™-type programs available.Such programs are capable of displaying .doc and .ppt files, forexample, using the appropriate Office-type program on the portableelectronic device. Other types of data may also be downloaded using themethod disclosed herein.

A specific embodiment has been shown and described herein. However,modifications and variations may occur to those skilled in the art. Allsuch modifications and variations are believed to be within the sphereand scope of the present embodiment.

1. A method for downloading an attachment to an attachment viewer of aportable electronic device, comprising: sending an initial request fromsaid attachment viewer to a server in response to receipt of an emailmessage identifying said attachment by said portable electronic device;accessing a graph structure representing a map of said attachment fromsaid server, said graph structure having been previously built on saidserver; reconstructing said graph structure in response to said initialrequest and encapsulating said graph structure in data having anattachment viewer readable format, said data being stored on saidserver; downloading an initial chunk of said data from said server tosaid attachment viewer responsive to said initial request; storing saiddownloaded chunk of said data on said portable electronic device priorto display thereof; displaying said stored chunk of said data on saidportable electronic device; upon displaying said stored chunk of saiddata, automatically sending a request to download a respective nextchunk of said data from said server; responsive to said request,downloading said respective next chunk of said data from said server;and while data chunks of said data remain to be downloaded from saidserver, repeating said storing, displaying, requesting and downloading.2. A method as claimed in claim 1, wherein said graph structure is aDocument Object Model.
 3. A method as claimed in claim 1, wherein saidattachment viewer readable format is Universal Content Stream format. 4.A method as claimed in claim 1, wherein said sending and saiddownloading are conducted over a wireless network selected from thegroup consisting of GSM/GPRS, CDPD, TDMA, iDEN, Mobitex, and DataTAC,EDGE, EVDO, UMTS, Bluetooth and variants of 802.11.
 5. A method asclaimed in claim 1, further comprising: prior to displaying said storedchunk of said data, detecting scrolling of a currently displayed chunkof said data.
 6. A portable electronic device, including: at least oneinput device; a content store; a display; and an attachment viewer for:sending an initial request to download an initial chunk of data from aserver storing said data in an attachment viewer readable format;receiving and storing said downloaded chunk of said data in said contentstore prior to display thereof; displaying said stored chunk of saiddata on said display; upon displaying said stored chunk of said data,automatically sending a request to download a respective next chunk ofsaid data from said server; and while said data chunks of said dataremain to be downloaded from said server, repeating said receiving,storing, displaying and requesting.
 7. A portable electronic device asclaimed in claim 6, wherein said graph structure is a Document ObjectModel.
 8. A portable electronic device as claimed in claim 6, whereinsaid attachment viewer readable format is Universal Content Streamformat.
 9. A portable electronic device as claimed in claim 6, whereinsaid sending and said downloading are conducted over a wireless networkselected from the group consisting of GSM/GPRS, CDPD, TDMA, iDEN,Mobitex, and DataTAC, EDGE, EVDO, UMTS, Bluetooth and variants of802.11.
 10. A portable electronic device as claimed in claim 6, saidattachment viewer further for detecting scrolling of a currentlydisplayed chunk of said data prior to displaying said stored chunk ofsaid data.
 11. A method for downloading data onto a portable electronicdevice having an attachment viewer, a display and a content store,comprising: sending an initial request from said attachment viewer todownload an initial chunk of data from a server storing said data in anattachment viewer readable format; receiving and storing said downloadedchunk of said data in said content store prior to display thereof;displaying said stored chunk of said data on said display; upondisplaying said stored chunk of said data, automatically sending arequest from said attachment viewer to download a respective next chunkof said data from said server; and while said data chunks of said dataremain to be downloaded from said server, repeating said receiving,storing, displaying and requesting.
 12. A method as claimed in claim 11,wherein said data is an attachment that is received in an email message.13. A method as claimed in claim 11, wherein said sending and saidreceiving are conducted over a wireless network selected from the groupconsisting of GSM/GPRS, CDPD, TDMA, iDEN, Mobitex, and DataTAC, EDGE,EVDO, UMTS, Bluetooth and variants of 802.11.
 14. A method as claimed inclaim 11, wherein said graph structure is a Document Object Model.
 15. Amethod as claimed in claim 11, wherein said attachment viewer readableformat is Universal Content Stream format.
 16. A method as claimed inclaim 11, further comprising: prior to displaying said stored chunk ofsaid data, detecting scrolling of a currently displayed chunk of saiddata.
 17. A system, comprising: a portable electronic device having atleast one input device, a content store, a display and an attachmentviewer; said attachment viewer for: sending an initial request todownload an initial chunk of data from a server storing said data in anattachment viewer readable format; receiving and storing said downloadedchunk of said data in said content store prior to display thereof;displaying said stored chunk of said data on said display; upondisplaying said stored chunk of said data, automatically sending arequest to download a respective next chunk of said data from saidserver; and while said data chunks of said data remain to be downloadedfrom said server, repeating said receiving, storing, displaying andrequesting; and a server configured, in response to said initialrequest, to access a graph structure representing a map of saidattachment from said server, said graph structure having been previouslybuilt on said server; to reconstruct said graph structure, encapsulatesaid graph structure in data having an attachment viewer readableformat; store said data; and to transmit an initial chunk of said data;said server further configured to transmit respective next chunks ofsaid data in response to subsequent requests.
 18. A non-transitorycomputer readable storage medium storing a plurality of computerreadable instructions executable by a processor to perform a method fordownloading data onto a portable electronic device having an attachmentviewer, a display and a content store, the method comprising: sending aninitial request from said attachment viewer to download an initial chunkof data from a server storing said data in an attachment viewer readableformat; receiving and storing said downloaded chunk of said data in saidcontent store prior to display thereof; displaying said stored chunk ofsaid data on said display; upon displaying said stored chunk of saiddata, automatically sending a request from said attachment viewer todownload a respective next chunk of said data from said server; andwhile said data chunks of said data remain to be downloaded from saidserver, repeating said receiving, storing, displaying and requesting.19. The non-transitory computer readable storage medium of claim 18,wherein said attachment viewer readable format is Universal ContentStream format.
 20. The non-transitory computer readable storage mediumof claim 18, the method further comprising: prior to displaying saidstored chunk of said data, detecting scrolling of a currently displayedchunk of said data.